Current graphics data processing includes systems and methods developed to perform a specific operation on graphics data, e.g., linear interpolation, tessellation, rasterization, texture mapping, depth testing, etc. More recently, portions of graphics processors are programmable, supporting a wider variety of operations for processing vertex data and fragment data. However, these graphics processors also include fixed function computation units to perform specific operations, particularly for performing texture mapping operations, such as level of detail (LOD) computations, texture blending, and filtering. The fixed function computation units for performing texture blending are configured in a pipeline, such as a prior art Texture Blend Unit 100 shown in FIG. 1, configured using fixed function state.
Each Combiner Unit 140 within Texture Blend Unit 100 may be configured to perform a limited set of texture blending operations using inputs read from registers. The fixed function state specifies which register value should be multiplexed to which multiplier or adder input. A Specular Combiner Unit 150 is configured to blend specular color data with blended texture and color data. A Final Combiner Unit 160 is configured to blend fog data with blended specular, color, and texture data and produce shaded fragment data.
As greater portions of graphics processors are programmable, it is desirable to perform texture blending using one or more programmable computation units and remove the fixed function units to save die area and improve efficiency. However, in order to execute code written for a processor supporting fixed function units, the fixed function state must be converted into program instructions for execution by the one or more programmable computation units.
Accordingly, it is desirable to have a graphics processor that can execute code written for a processor supporting fixed function unit and a program written for programmable computation units without requiring either a driver upgrade or inclusion of the fixed function units within the graphics processor.